In recent years, there has been a rapid increase in demand for delivery of real-time applications and services over distributed networks. Distributed networks, especially those in which subscriber devices are mobile, commonly hand off subscriber devices from access station to access station as those devices move in the network. The goal of handoffs is to keep ongoing services to a mobile subscriber operating, ideally without any decrease in service quality, by ensuring that those ongoing services are provided by the access station(s) that best serve the mobile subscriber at any time. During a handoff, a subscriber device may measure the quality of incoming links from multiple access stations, using a metric such as received signal power or bit error rate. When the quality of the incoming link from a first access station providing a service to the subscriber device becomes sufficiently poor relative to the quality of an incoming link from a second access station, the subscriber device may switch to receiving the service from the second access station.
FIG. 1 illustrates a packet service 120 distributed from a source 100 to a subscriber 130 via a distributed network 140. The packet service 120 traverses the network 140 to multiple access stations 110 and 112 via paths 121 and 122. The access stations 110 and 112 transmit the packet service to subscriber 130. During a handoff, subscriber 130 may switch from receiving the packet service 120 from access station 110 to receiving the packet service 120 from access station 112. Each access station may be a base transceiver station (base station) and subscriber 130 may be a mobile user.
One difficulty that arises in handing off the packet service 120 if the packet service 120 is a real-time service, such as streaming video, is that the packets of the packet service 120 (traversing paths 121 and 122) are not synchronized at the access stations 110 and 112. This means that when subscriber 130 is handed off from the access station 110 to the access station 112, the packet stream representing the packet service 120 transmitted by the access station 112 may be ahead of or behind the packet stream representing the packet service 120 transmitted by the access station 110.
FIG. 2 illustrates an example of the potential extent of the mismatch of the arrival times of a given packet of the packet service 120 at access stations 110 and 112. The amount of the time mismatch is primarily defined by packet delay and packet delay variation, or jitter, experienced by the packet on paths 121 and 122. The packet on path 121 experiences a minimum network delay 202 and a network jitter that may be any value between zero and a worst-case network jitter 204. The packet on path 122 experiences a minimum network delay 222 and a network jitter that may be any value between zero and a worst-case network jitter 224. In this example, the minimum network delay 202 and the minimum network delay 222 are generally different due primarily to differences in transmission delay and minimum processing delay on paths 121 and 122. Transmission delay is the delay due to the distance that a signal travels at the speed of light over a given physical medium, and is generally different on paths 121 and 122 because access stations 110 and 112 are generally located at different physical locations. Minimum processing delay is the minimum delay due to processing, including queuing, of the packet by devices traversed by the packet. This delay may be different on paths 121 and 122 because a packet on each path generally traverses different sets of devices and/or different internal paths within the devices. The network jitter is often highly variable in packet networks, as well as path-dependent. This variation results from, for example, variable queuing delays due to multiplexing of multiple streams of burst traffic at devices traversed by a packet on paths 121 and 122, and the interaction of these delays with the operation of network protocols such as the Transmission Control Protocol (TCP). The worst-case network jitter 204 and 224 is the highest value of network jitter on paths 121 and 122, respectively. A given packet on paths 121 and 122 experiences an actual network jitter that may range between zero and the worst-case network jitter 204 and 224, respectively.
The smallest time for a packet transmitted by source 100 on path 121 to reach access station 110, the smallest delay 210, is in this example equal to the minimum network delay 202. The largest time for a packet transmitted by source 100 on path 121 to reach access station 110, the largest delay 212, is in this example equal to the sum of the minimum network delay 202 and the worst-case network jitter 204. Similarly, the smallest time for a packet transmitted by source 100 on path 122 to reach access station 112, the smallest delay 230, is in this example equal to the minimum network delay 222. The largest time for a packet transmitted by source 100 on path 122 to reach access station 112, the largest delay 232, is in this example equal to the sum of the minimum network delay 222 and the worst-case network jitter 224. The worst-case time mismatch 250 of packet arrivals at access stations 110 and 112 is the difference between the largest delay 212 on path 121 and the smallest delay 230 on path 122. The actual time mismatch for a given packet at access stations 110 and 112 may range anywhere from near zero to the worst-case time mismatch 250.
In most well designed networks, the largest delay 212 and 232 for well upwards of 99% of the packets is under a reasonable limit, such as 100 milliseconds. If the extent of the network is small, the minimum network delay 202 and 222 for packets to traverse the network from source 100 to access stations 110 and 112 may be far less than 100 milliseconds. However, some packets in this network may experience worst-case network jitter 204 and 224 of near 100 milliseconds. Based on FIG. 2, this means that the worst-case time mismatch 250 of packet arrivals at access stations 110 and 112 is also near 100 milliseconds. This means that when subscriber 130 switches from access station 110 to access station 112 during a handoff, subscriber 130 may miss 100 milliseconds of packet service 120. This is because, in this example, the packet stream representing the packet service 120 transmitted by the access station 112 is ahead of the packet stream representing the packet service 120 transmitted by the access station 110. This significant worst-case time mismatch may degrade the quality of real-time services during a handoff because a significant amount of packet information may be lost or multiply received. An example of the quality degradation that may result is severe glitching of real-time video or even dropping of the packet service 120.
The effect of jitter on the packet service 120 can be reduced, in one existing approach, by delaying received packets of the packet service 120 at network endpoints, such as a network device on paths 121 or 122 just prior to access stations 110 or 112, respectively. These received packets are accumulated in a receive queue on each of paths 121 and 122 for packet service 120 at service initiation. The effect of these receive queues is to replace the worst-case network jitter 204 and 224 with delay by increasing the minimum network delay 202 and 222 on paths 121 and 122. However, even a significant reduction in worst-case network jitter 204 and 224 does not eliminate the time mismatch of packet arrivals at access stations 110 and 112, or the quality degradation of real-time services that occurs on handoffs when this time mismatch exists. The amount of delay added to paths 121 and 122 on service initiation, whether just constant across network endpoints or based on estimates of the worst-case network jitter 204 and 224, does not ensure that the total delay on paths 121 and 122 is equal, which is required to eliminate the time mismatch. This receive queuing approach may even increase the time mismatch of packet arrivals at access stations 110 and 112, and the corresponding quality degradation of real-time services. One reason for this is that the amount of delay added to paths 121 and 122 generally does not correspond to the fill level of the receive queues at initiation of the packet service, because the packets used to fill the receive queues at service initiation usually have experienced highly variable network jitter.
To address these shortcomings, it would be desirable to provide a method of synchronizing packet services over a distributed network by eliminating the time mismatch of arrivals of packets of a real-time packet service at access stations such as base stations. It would also be desirable to provide a network device that can facilitate the synchronization of packet services over this distributed network.